package com.yaoxiaoqing.basis;

import java.util.Arrays;

/*
 * java.util.Arrays:作数组的工具类，包含了用来操作数组（比如排序和搜索）的各种方法。
 */
public class JavaUtilArrays<arr3> {
    public static void main(String[] args) {
        //1.boolean Arrays.equals(int a,int b) 判断两个数组是否相等
        int[] arr1 = new int[]{1, 2, 3, 4};
        int[] arr2 = new int[]{1, 2, 9, 4};
        boolean isEquals = Arrays.equals(arr1, arr2);
        System.out.println(isEquals);

        //2.输出数组信息 String Arrays.toString(int[] a)
        System.out.println(Arrays.toString(arr1));

        //3.void Arrays.fill(int[] a)输出数组信息
        Arrays.fill(arr1, 10);
        System.out.println(Arrays.toString(arr1));

        //4.void Arrays.sort(int[] a)对数组进行排序
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));

        //5.int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值
        //如果返回值为非负数index，表示找到了指定值，且其索引位置为index；如果返回值为负数，假设为index，表示未找到指定值，且它应该插入的位置为-(index + 1)。
        int[] arr3 = new int[]{43, 32, 76, 92, -65, 85, 71, -42};
        int index = Arrays.binarySearch(arr3, 210);
        System.out.println("得到的索引" + index);
        if (index >= 0) {
            System.out.println(index);
        } else {
            System.out.println("未找到");
        }

//        数组使用常见异常
        ArrayException();
    }

    public static void ArrayException() {
        //1.数组角标越界的异常:ArrayIndexOutOfBoundsException
        int[] arr = new int[]{1, 2, 3, 4, 5, 6};

        //错误1：
//		for(int i = 0;i <= arr.length;i++){
//			System.out.println(arr[i]);
//		}

        //错误2：
//		System.out.println(arr[-2]);

//2.空指针异常:NullPointerException
        //情况一:
//		int[] arr2= new int[]{1,2,3};
//		arr2 = null;
//		System.out.println(arr2[0]);

        //情况二:
//		int[][] arr2 = new int[4][];
//		System.out.println(arr2[0][0]);

        //情况三:
        String[] arr3 = new String[]{"AA", "QQ", "YY", "XX", "TT", "KK"};
        arr3[0] = null;
//    System.out.println(arr3[0].toString());
    }



}
